from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import unittest

class NewVisitorTest(unittest.TestCase):

    def setUp(self):
        self.browser = webdriver.Firefox()
        self.browser.implicitly_wait(3)

    def tearDown(self):
        self.browser.quit()

    def check_for_row_in_list_table(self,row_text):
        table = self.browser.find_element_by_id('id_list_table')
        rows = table.find_elements_by_tag_name('tr')
        self.assertIn(row_text,[row.text for row in rows ])

    def test_can_start_a_list_and_retrieve_it_later(self):
        # 伊迪斯听说一个很酷的在线待办事项应用
        #  他去看这个应用的首页
        #self.browser.get('http://192.168.0.11:8000')
        self.browser.get('http://127.0.0.1:8000')
        #他注意到网页的标题和头部都包含"To-Do"这个词
        #assert 'To-Do' in browser.title
        self.assertIn('To-Do',self.browser.title)
        header_text = self.browser.find_element_by_tag_name('h1').text
        self.assertIn('To-Do',header_text)

        # 应用邀请他输入一个待办事项
        inputbox = self.browser.find_element_by_id('id_new_item')

        inputbox.send_keys('1:Buy peacock feathers')
        #inputbox.send_keys('Use peacock feathers to make a fly')
        self.assertEqual(
            inputbox.get_attribute('placeholder'),
            'Enter a to-do item'
        )
        # 他在一个文本框中输入“Buy peacock feathers"
        # 伊迪斯的爱好是使用假蝇做饵钓鱼
        inputbox.send_keys(Keys.ENTER)

        import time
        time.sleep(3)
        self.check_for_row_in_list_table(
            'User peacock feathers to make a fly'
        )
      # table = self.browser.find_element_by_id('id_list_table')
        #rows = table.find_elements_by_tag_name('tr')
        #self.assertTrue(
         #   any(row.text == '1:Buy peacock feathers' for row in rows),
         #   "New to-do item did not appear in table -- its text was:\n%s" % (
         #       table.text,
          #  )
      #)

       # self.assertIn('1:Buy peacock feathers',[ row.text for row in rows])


        #他按回车键后，页面更新了
        # 待办事项表格中显示 "1： Buy peacock feathers“
        # 页面又显示一个文本框，可以输入其他的待办事项
        # 他输入“User peacock feathers to make a fly”
        # 伊迪斯做事很有条理
        self.fail('Finsh the test!')

        # 页面再次更新，他的清单中显示了这两个待办事项

        # 伊迪斯想知道这个网站是否会记住她的清单

        # 他看到网站为他生成了一个唯一的URL
        # 而且页面中有一些文字解说这个功能
        # 她访问这个URL，发现他的待办事项列表还在
        # 他很满意，去睡觉了
if __name__ == '__main__':
    unittest.main(warnings='ignore')